Practical Interruptible Conversations - Distributed Dynamic Verification with Session Types and Python
نویسندگان
چکیده
The rigorous and comprehensive verification of communication-based software is an important engineering challenge in distributed systems. Drawn from our industrial collaborations [32,35,26] on Scribble, a choreography description language based on multiparty session types, this paper proposes a dynamic verification framework for structured interruptible conversation programming. We first present our extension of Scribble to support asynchronously interruptible conversations. We then implement a concise API for conversation programming with interrupts in Python that enables distributed processes to be dynamically verified. Our framework ensures the global safety of a system in the presence of asynchronous interrupts through runtime monitoring of each endpoint, checking the conformance of each local execution trace against the specified protocol. The usability of our framework for describing and verifying choreographic communications has been tested by integration into the large scientific cyberinfrastructure developed by the Ocean Observatories Initiative. Asynchronous interrupts have proven expressive enough to represent and verify their main classes of communication patterns, including asynchronous streaming and various timeout-based protocols, without requiring additional synchronisation mechanisms. Benchmarks show conversation programming and monitoring can be realised with little overhead.
منابع مشابه
Practical interruptible conversations
The rigorous and comprehensive verification of communication-based software is an important engineering challenge in distributed systems. Drawn from our industrial collaborations [33,28] on Scribble, a choreography description language based on multiparty session types, this paper proposes a dynamic verification framework for structured interruptible conversation programming. We first present o...
متن کاملSession Types Go Dynamic or How to Verify Your Python Conversations
This paper presents the first implementation of session types in a dynamically-typed language Python. Communication safety of the whole system is guaranteed at runtime by monitors that check the execution traces comply with an associated protocol. Protocols are written in Scribble, a choreography description language based on multiparty session types, with addition of logic formulas for more pr...
متن کاملMultiparty Session Actors
Actor coordination armoured with a suitable protocol description language has been a pressing problem in the actors community. We study the applicability of multiparty session type (MPST) protocols for verification of actor programs. We incorporate sessions to actors by introducing minimum additions to the model such as the notion of actor roles and protocol mailboxes. The framework uses Scribb...
متن کاملEmbedding Session Types in HML
Recent work on the enhancement of multiparty session types with logical annotations enable the effective verification of properties on (1) the structure of the conversations, (2) the sorts of the messages, and (3) the actual values exchanged. In [2] we extend this work to enable the specification and verification of mutual effects of multiple cross-session interactions. Here we give a sound and...
متن کاملGlobal Session Types for Dynamic Checking of Protocol Conformance of Multi-Agent Systems
Multi-agent systems (MASs) have been proved to be an industrial-strength technology for integrating and coordinating heterogeneous systems. However, due to their intrinsically distributed nature, testing MASs is a difficult task. In recent work [1] we have tackled the problem of runtime verification of the conformance of a MAS implementation to a specified protocol by exploiting global session ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2013